﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;

namespace Thor.Domain
{
    public abstract class ThorDomainObjectBase : INotifyPropertyChanged, IEditableObject
    {
        #region Constructors

        public ThorDomainObjectBase() { }

        #endregion

        #region Methods

        protected void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }

        #endregion

        #region INotifyPropertyChanged Members

        public event PropertyChangedEventHandler PropertyChanged;

        #endregion

        #region IEditableObject Members

        public abstract void BeginEdit();

        public abstract void CancelEdit();

        public abstract void EndEdit();

        #endregion
    }
}
